#include "TADNombre.h"
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


Nombre PedirNombre(){

	Nombre N;

	printf("Introduzca el nombre: ");
	scanf("%[^\n]",N.NomPr);
	flushall();
	printf("\nIntroduzca el primer apellido: ");
	scanf("%[^\n]",N.PriApe);
	flushall();
	printf("\nIntroduzca el segundo apellido: ");
	scanf("%[^\n]",N.SegApe);
	flushall();
	printf("\n");

	return(N);
}

Nombre GenerarNombre()
{
	Nombre N1;
	int num;
	char nombre[7], apellido1[8], apellido2[9];

	//Generamos un nombre pseudoaleatorio
	num=rand()%5;
	switch (num)
	{
		case 0: strcpy(nombre,"Pepe");
		break;

		case 1: strcpy(nombre,"Juan");
		break;

		case 2: strcpy(nombre,"Pablo");
		break;

		case 3: strcpy(nombre,"Hector");
		break;

		case 4:strcpy(nombre,"Javier");
		break;
	}
	
	//Generamos un el primer apellido pseudoaleatorio

	switch (num)
	{
		case 0: strcpy(apellido1,"Garcia");
		break;

		case 1: strcpy(apellido1,"Jimenez");
		break;

		case 2: strcpy(apellido1,"Ortega");
		break;

		case 3: strcpy(apellido1,"Amador");
		break;

		case 4:strcpy(apellido1,"Solanas");
		break;
	}

	//Generamos un el segundo apellido pseudoaleatorio

	switch (num)
	{
		case 0: strcpy(apellido2,"Delgado");
		break;

		case 1: strcpy(apellido2,"Chaparro");
		break;

		case 2: strcpy(apellido2,"Cano");
		break;

		case 3: strcpy(apellido2,"Nadal");
		break;

		case 4:strcpy(apellido2,"Sanchez");
		break;
	}

	strcpy(N1.NomPr,nombre);
	strcpy(N1.PriApe,apellido1);
	strcpy(N1.SegApe,apellido2);

	return(N1);
}

void ModificarNombre(Nombre *N, char Nombre[])
{
	strcpy(N->NomPr,Nombre);
	system("cls");
}


void ModificarApe (Nombre *N, char Dato[],int NApe)
{
	if (NApe==1){
		strcpy(N->PriApe,Dato);
	}
	else
	{
		strcpy(N->SegApe,Dato);	
	}
	system("cls");

}


int ComparaNombres (Nombre N1, Nombre N2)
{
	int Res1,Res2,Res3,Res;

	Res1=strcmp(strupr(N1.PriApe),strupr(N2.PriApe));
	Res2=strcmp(strupr(N1.SegApe),strupr(N2.SegApe));
	Res3=strcmp(strupr(N1.NomPr),strupr(N2.NomPr));
	if (Res1==0) {
		if  (Res2==0){
			if (Res3==0) Res=0;
			else 	if (Res3<0) Res=1;
				else Res=2;
		}
		else 	if(Res2<0) Res=1;
			else Res=2;
	}
	else 
		if (Res1<0)
			Res=1;
		else Res=2; 
	return(Res);

}

void VisualizaNombre(Nombre N)
{
 	printf("\nNombre: %s",N.NomPr);
 	printf("\nPrimer Apellido: %s",N.PriApe);
 	printf("\nSegundo Apellido: %s",N.SegApe);

}

void CopiarNombre(Nombre *Nom1, Nombre Nom2)
{
	strcpy(Nom1->NomPr, Nom2.NomPr);
	strcpy(Nom1->PriApe, Nom2.PriApe);
	strcpy(Nom1->SegApe, Nom2.SegApe);
}

void FicheroANombre(Nombre *Nombre, FILE *fichero)
{
	char NombreArch[20], PriApeArch[40], SegApeArch[40], Letra;
	int pos, del=58;

	for (pos=0;(Letra=getc(fichero))!= del;pos++)
	{
		NombreArch[pos]=Letra;
	}
	
	NombreArch[pos]=0;

	for (pos=0;(Letra=getc(fichero))!= del;pos++)
	{
		PriApeArch[pos]=Letra;
	}

	PriApeArch[pos]=0;

	for (pos=0;(Letra=getc(fichero))!= del;pos++)
	{
		SegApeArch[pos]=Letra;
	}

	SegApeArch[pos]=0;

	strcpy(Nombre->NomPr,NombreArch);
	strcpy(Nombre->PriApe,PriApeArch);
	strcpy(Nombre->SegApe, SegApeArch);
}